import { getStorage, setStorage } from '@/utils/storage';
import { goToLogin } from '@/utils/common';
import { reqGetById } from '@/api/user';
import { reqLogin } from '@/api/login';

Page({
  data: {
    // 用户信息
    userInfo: {
      avatar: '', // 头像
      username: '', // 用户名
      point: 0,  // 积分
      coupon: 0, // 卡券数量
    },
    // 我的页面背景图
    backgroundImage: 'https://minio.zhangyizhou.xyz/file/management/mine.jpg',
    // 判断登录状态 默认为没有登录
    isLogin: false,
  },

  // 页面展示的时候刷新用户信息
  onShow() {
    this.getUserInfo()
  },

  // 获取用户信息
  async getUserInfo() {
    const token = getStorage('token') || ''
    if (token) {
      const { data } = await reqGetById(token)
      this.setData({
        isLogin: true,
        'userInfo.avatar': data.avatar,
        'userInfo.username': data.nickname || ''
      })
    }
  },

  // 点击登录 或者 编辑信息
  async handleLogin() {
    // 点击登录
    await goToLogin()
    // 刷新用户信息
    await this.getUserInfo()
  },

  // 跳转我的订单页
  async goToOrderList() {
    const token = getStorage('token') || ''
    if (!token) {
      // 未登录时弹出对话框
      const res = await wx.modal({
        content: '暂未登录，请先登录'
      })
      // 确认登录
      if (res) {
        // 获取 code
        const { code } = await wx.wxLogin();
        // 根据 code 换取 token
        const { data } = await reqLogin(code);
        // 保存 token
        setStorage('token', data)
        // 跳转到 我的订单页
        wx.navigateTo({
          url: '../../pages/order/order',
        })
      }
    } else {
      // 登录了直接跳转
      wx.navigateTo({
        url: '../../pages/order/order',
      })
    }
  }
})